home *** CD-ROM | disk | FTP | other *** search
/ Carousel / CAROUSEL.cdr / mactosh / utilprn / hpdeskje.sit / HPDJet ƒ / procedures_for_PDEF1.c < prev    next >
Text File  |  1989-04-02  |  2KB  |  73 lines

  1. /* 02.04.1989  amn  (latest edit) */
  2.  
  3. /* procedures_for_PDEF1.c  -  printer driver for Macintosh and HP DeskJet, procedures */
  4. /*                            common to PDEF0 and PDEF1. */
  5.  
  6. /* Authors:  Ari Mujunen (amn@hutcs.hut.fi) and Olli Arnberg (oar@hutcs.hut.fi). */
  7. /* Copyright Ari Mujunen, Olli Arnberg 1989. */
  8. /* You may redistribute the driver (=printer resource file, source files, */
  9. /* documentation file(s), and the file 'Copyright and Source Offer') */
  10. /* only _non-commercially_ and _in its entirety_. */
  11. /* See the file 'Copyright and Source Offer' and/or documentation for details. */
  12. /* Acknowledgements:  Special thanks to Mr. Earle R. Horton for his 'Daisy' */
  13. /* daisywheel printer driver and its source code published in 'MacTutor', Nov-Dec 1987. */
  14. /* This driver served as a basis and inspiration for our work.  It also */
  15. /* proofed that a Macintosh printer driver can be done despite the lack of */
  16. /* documentation from Apple. */
  17.  
  18. /* Change history: */
  19. /* Version  When        Who      Why */
  20. /* 2.1      02.04.1989  amn,oar  Released version. */
  21.  
  22.  
  23. /* Reinitializes grafPort's rectangles and regions according to the print record. */
  24. void setRectsAndRgns(TPPrPort, THPrint);
  25.  
  26. void
  27. setRectsAndRgns(thisPort, hPrint)
  28. TPPrPort thisPort;
  29. THPrint hPrint;
  30. {
  31.     /* GrafDevice(?);  should be '(*hPrint)->prInfoPT.iDev | prStl.wDev&0xFF' */
  32.     {    /* This printing port has no bitmap to draw into. */
  33.         /* If it had, it would reflect DeskJet's capabilities (print area). */
  34.  
  35.         BitMap bm;
  36.     
  37.         bm.baseAddr = nil;
  38.         bm.rowBytes = 0;
  39.         bm.bounds.top = 0;
  40.         bm.bounds.left = 0;
  41.         bm.bounds.bottom = 0;
  42.         bm.bounds.right = 0;
  43.         SetPortBits(&bm);
  44.     }
  45.     
  46.     /* Set the port rectangle to the page rectangle (IM II-150). */
  47.     thisPort->gPort.portRect = (*hPrint)->prInfo.rPage;
  48.     
  49.     /* 'visRgn' should be a region of the previous rectangle. */
  50.     RectRgn(
  51.         thisPort->gPort.visRgn,
  52.         &thisPort->gPort.portRect
  53.     );
  54.         
  55.     /* 'clipRgn' should be set to the page rectangle (IM II-150).  */
  56.     ClipRect(&thisPort->gPort.portRect);
  57.     
  58.     /* Now we move the page rectangle to compensate HP DeskJet's physical */
  59.     /* differences when compared to Applewriters. */
  60.     /* This moves drawing relative to the bitmap. */
  61.     {
  62.         ptXprintGlobals xPrintGlobals;
  63.         
  64.         xPrintGlobals = GET_XPRINT_GLOBALS;
  65.         MovePortTo(
  66.             -((*hPrint)->rPaper.left + xPrintGlobals->currentSettings.printerOrigin.h),
  67.             -((*hPrint)->rPaper.top + xPrintGlobals->currentSettings.printerOrigin.v)
  68.         );
  69.     }
  70. }  /* setRectsAndRgns */
  71.  
  72.  
  73.